Routing and forwarding of packets over a non-persistent communication link

ABSTRACT

According to an embodiment, an apparatus includes a table, a router a module and a driver. The table includes IP addresses and corresponding ports. At least one of the ports specifies a logical link. The router module receives IP packets and uses the table to associate the IP packets with the ports. The driver determines when assets for the logical link have become available, and then forwards associated IP packets to the available assets.

This application claims the benefit of provisional application60/860,303 filed Nov. 21, 2006, which is incorporated herein byreference.

BACKGROUND

A typical router receives an Internet Protocol (IP) packet, uses arouter table to look up a port corresponding to a router interface, andimmediately forwards the IP packet to that router interface. In anetwork having a fixed infrastructure, the router interface sends the IPpacket along a persistent communication link to a network destination.

Not all networks have a fixed infrastructure. A wireless ad-hoc networkis a computer network in which the communication links are wireless anddynamic. The network is ad hoc because the nodes dynamically join andleave the network, and so the determination of which nodes forward datais made dynamically based on network connectivity. Types of wirelessad-hoc networks include Mobile ad hoc networks (MANets) and wirelessmesh networks.

SUMMARY

According to an embodiment of the present invention, an apparatusincludes a table, a router a module and a driver. The table includes IPaddresses and corresponding ports. At least one of the ports specifies alogical link. The router module receives IP packets and uses the tableto associate the IP packets with the ports. The driver determines whenassets for the logical link have become available, and then forwardsassociated IP packets to the available assets.

According to another embodiment, a terminal includes a router interface,a router module for receiving incoming IP packets and routing theincoming IP packets to a port associated with a logical link, and adriver for the logical link. The driver determines when assets of therouter interface have become available so the IP packets can be sent toa network destination via the logical link. The driver forwards the IPpackets to the available assets.

According to yet another embodiment, a method of routing an IP packetincludes receiving the IP packet, and routing the packet, which includesidentifying the port to which the packet will be forwarded. The methodfurther includes refraining from forwarding the packet when assets for alogical link identified by the port are unavailable, and forwarding theIP packet when the assets for the logical links are available.

One or more embodiments address a problem of routing IP packets across anetwork where the communication links are non-persistent. In addition,they allow for a commercial router to be used instead of a customdesigned router. Algorithms and interfaces for the assets can beembedded in the driver.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a system in accordance with an embodimentof the present invention.

FIG. 2 is an illustration of a machine in accordance with an embodimentof the present invention.

FIG. 3 is an illustration of a method in accordance with an embodimentof the present invention.

FIG. 4 is an illustration of a terminal in accordance with an embodimentof the present invention.

FIG. 5 is an illustration of runtime operation of a Directional NetworkWaveform (DNW) terminal in accordance with an embodiment of the presentinvention.

DETAILED DESCRIPTION

Reference is made to FIG. 1, which illustrates a machine 110 thatcommunicates with a router interface 120 by sending and receivingmessage packets according to the well-known Internet protocol (IP).According to this protocol, the machine 110 receives IP packets from therouter interface 120, and routes the incoming IP packets based on thepackets' IP addresses.

The machine 110 forwards IP packets to the router interface 120. Therouter interface 120 includes assets 122, which send IP packets tonetwork destinations 130. A network destination 130 may be a simple IPdevice (e.g., a webcam, a personal computer), another router, or anyother IP device that can communicate over an IP network.

The router interface 120 sends IP packets to network destinations viaone or more communication links. A communication link refers to thatportion between the router interface 120 and a network destination 130.The communication links in FIG. 1 are represented by the double-arrowedline 140.

The router interface 120 includes pools of assets 122. Assets 122 referto the hardware that sends packets out of the machine 110. The machine110 selects certain assets 122 and configures the selected assets 122 tosend IP packets to network destinations over communication links 140.

Some assets 122 send IP packets to network destinations 130 overcommunication links that are non-persistent. Non-persistentcommunications links are referred to as “logical links.” Examples ofassets for logical links include time, antennas, modems, and up-downconverters. Attributes of a logical link may include specific time slotsand specific antennas. Other examples of attributes include, withoutlimitation, data rate, type of RF modulation, and center RF frequency(which are set in a modem), power level (which is set in an up/downconverter), the number of time slots that can be used for a logicallink, those time slots that are used to transmit IP packets and thosethat are used to receive IP packets.

Other assets 122 send IP packets to network destinations 130 overcommunication links 140 that are persistent. Persistent communicationlinks are referred to as physical links. Assets for physical linksinclude, for example, an Ethernet chip set.

Logical links are dynamic. A logical link might vary temporally. Forexample, time slot assignments are a critical part of Time DivisionMultiple Access (TDMA)-based communications networks because each nodeis assigned time slots in which it can transmit or receive packets. Inmodern wireless networks, the TDMA time slots are assigned to each node.The time slots can vary dynamically. Consequently, an asset such as atime might not be available until the slots are assigned.

A logical link might vary spatially. Consider directional antennahardware on a mobile platform. The directional antenna hardware includesmultiple antennas, up-down converters, transceivers, etc. Since thelocation and orientation of the platform can vary dynamically, assetssuch as antennas aren't selected until the location and orientation ofthe platform has been determined.

The machine 110 takes these dynamics into account. The machine 110receives IP packets, and immediately routes the packets. However, themachine 110 does not forward IP packets to the router interface 120until it determines that assets have become available to support alogical link with a network destination. In this manner, the machine 110refrains from forwarding IP packets when assets for a logical linkidentified by the port are unavailable. Once the assets have becomeavailable (e.g., once the assets have been selected), the machine 110forwards IP packets to the selected assets 122. The selected assets 122then send the IP packets via a logical link to a network destination130.

Reference is made to FIG. 2, which illustrates an exemplary machine 110.As used herein, the term exemplary indicates an example and notnecessarily an ideal. The machine 110 includes a router table 210. Therouter table 210 includes a plurality of entries, each entry containingan IP address and a corresponding port. Each port specifies acommunication link. A physical port specifies a physical link, and alogical link port specifies a logical link.

Additional reference is made to FIG. 3. When a packet is received by themachine 110, the packet may be stored in a reserved memory location. Arouter function is called, whereby a router module 220 uses the routertable 210 to immediately associate the IP packets with ports (block310). The router module 220 may look up a port in the router table 210based on the packet's IP address.

The router module 220 may create a pointer to the memory location wherethe packet is stored. The packet pointer is then passed to a driverassociated with the port. The router module 220 also populates therouter table 210 with ports. Such routing may be performed in aconventional manner. The router module 220 may be implemented either inhardware or software. Commercial off-the-shelf router hardware orsoftware (or both) may be used.

The machine 110 further includes at least one logical link driver 230. Alogical link driver 230 driver determines when assets for its logicallink have become available (block 320). This function may includeselecting certain assets for the logical link, and configuring theselected assets to send framed packets via the logical link. A logicallink driver 230 may also maintain the attributes of the assets for itslogical link.

Once assets have become available, the driver 230 forwards associated IPpackets to the available assets (block 330). The available assets thensend framed packets over the logical link.

Thus, the machine 110 addresses a problem of routing IP packets across anetwork where the communication links are non-persistent. Moreover, therouter module 220 does not need to know the difference betweenconventional physical link drivers and logical link drivers 230. Therouter module 230 simply maps ports to IP addresses. To the routermodule 220, a logical link driver is just another driver. This allowsthe router module 220 to be a commercial router instead of a customdesigned router. In addition, the router module 220 can be upgradedwithout having to redesign the drivers. And since the router module 220doesn't have to differentiate between ports for physical links and portsfor logical links, the algorithms and interfaces for the assets can beembedded in the logical link driver 230. This may include algorithms andinterfaces that operate in the time/space/frequency/multi-antennadomain.

The machine 110 is not limited to any particular type or use. Themachine 110 may be a standalone unit or it may be integrated in a largersystem. Examples include, without limitation, routers and terminals.

Reference is made to FIG. 4, which illustrates an exemplary terminal400. The terminal 400 includes a router interface. Assets for physicallinks include Ethernet hardware 410. For example, the Ethernet hardware410 might include chipsets for a 100 Mb Ethernet and two GigabitEthernets. The Ethernet hardware 410 is part of a fixed infrastructurethat, for instance, allows the terminal 400 to connect to a laptopcomputer, a GPS device, an inertial navigation system, a web camera, afixed router acting as a gateway to another network, or some othernetwork device.

Assets for logical links may include time and antenna terminal units(ATUs). An ATU includes a phased array antenna 420, up/down converter425, omni-directional antenna 435, and modem 430. A phased array antenna420 includes an antenna aperture and a beam steering controller.

For directional communication, a selected modem 430 transmits andreceives radio frames and exchanges a modulated radio signal (e.g., a 5GHz signal) with a selected up/down converter 425. The selected up/downconverter 425 exchanges a modulated radio signal (e.g., a 15 GHz signal)with a selected phased antenna array 420. The selected phased arrayantenna 420 is controlled in response to gain and steering commands.

For omni-directional communication, a selected modem 430 receives radioframes and exchanges a modulated radio signal with an omni-directionalantenna 435. The omni-directional antenna 435 also receives gaincommands.

The terminal 400 includes processing hardware 440 (e.g., an embeddedcomputer including a CPU and system memory) that runs an operatingsystem (OS) 450. The operating system 450 may include a protocol stacksuch as a transmission control protocol/Internet protocol (TCP/IP) stack(or the operating system may run a different protocol stack). Theoperating system 450 may include a software router. In the alternative,a software router may be an application that runs on the operatingsystem 450.

Additional applications that run on the operating system 450 includephysical link drivers and logical link drivers. The physical linkdrivers may include an Ethernet device driver 460, which providesEthernet frames to the Ethernet hardware 410. The logical link driversinclude a radio frequency (RF) driver 470 for providing frames to themodem hardware 430, gain commands to the up/down converters 425,steering commands to the phased array antenna hardware 420, and gaincommands to the omni-directional hardware 440.

The RF driver 470 includes an OS interface 472 for receiving IP packetsfrom, and sending IP packets to, the operating system 450. The RF driver470 may be a layer-2 function and a layer-1 control function in the OSImodel. Accordingly, a driver instance exchanges IP packets with an OSILayer-3 IP Stack.

The RF driver 470 further includes link management 474 for encapsulatingthe IP packets with the RF driver's unique link layer information toproduce link layer frames. This unique information might includeposition (latitude, longitude and altitude) which a peer terminal willuse along with its attitude to steer a phased array antenna beam towardsthe terminal 400. The link management 474 may also save the peerterminal's position information.

The RF driver 470 further includes slot management 476 a, beam steering476 b, and low level device drivers 478. The slot management 476 aassigns time slots to the logical links. The beam steering 476 bdetermines the location of peer terminals to make a just-in-timedecision in selecting an antenna from the antenna hardware 420, and itcomputes a pointing vector from the face of the selected antenna.

The low level device drivers 478 formulate commands and send thecommands to the selected assets. In addition, a low level serial bus(e.g., RS422) driver may be used to communicate with an InertialNavigation System, and a bus (e.g., PCI) driver may be used to talk tothe timing card that gives us an interrupt when at the edge of a timeslot.

The router interface may be expanded simply by adding a link (e.g., anew I/O device) and installing the appropriate driver. No additionalchanges are needed for routing the IP packets.

The terminal 400 may be used in any IP network, including a wireless“hub and spoke” network. However, the terminal 400 is especiallysuitable for an ad hoc mobile IP network of terminals, where theterminal 400 functions as a mobile router. This type of network does nothave a fixed infrastructure of IP routers. The mobile routers come andgo and are constantly changing position. For instance, a terminal 400may be carried by a land vehicle, aircraft or other mobile platform.

The terminal may be a part of a DNW, which is an ad hoc network ofterminals that use TDMA communication. The DNW has the topology of amesh network, where terminals 400 are interconnected via logical links.

A DNW terminal may have the following modes of operation: TDMAcommunication with an omni-directional antenna, and TDMA communicationwith a directional antenna. A directional antenna can provide additionalgain for increased performance on transmit and receive and reducedinterference from unwanted sources. The RF driver 470 constructs a DNWwaveform in conjunction with the selected assets. The directionalantenna just adds a layer of complexity to the RF driver 470. Not onlydoes the RF driver 470 deal with time slot coordination, but it alsodeals with the location of the peer terminals and the location andattitude of its own terminal to make a just-in-time decision inselecting assets.

Reference is now made to FIG. 5, which illustrates runtime operation ofDNW terminals T1, T2 and T3. Within each terminal, each driver can haveone or more instantiations in order to service multiple ports of thesame device type. For example, a single instance of a Gigabit Ethernetdriver and a pool of RF driver instances can be created for eachterminal. The first terminal T1 illustrates the availability of onegigabit Ethernet port (GIG0) and ports for forty logical links (RF0through RF39), where more than one of those logical links could beactive simultaneously.

In the examples that follow, the following notation will be used.Subscript d following a port refers to a driver instance correspondingto that port, subscript LL following a port refers to a logical linkcorresponding to that port, and subscript PL following a port refers toa physical link corresponding to that port. An arrow pointing toward theterminal T1 indicates a received packet, and an arrow pointing away fromthe terminal T1 indicates a transmitted packet.

Logical links RF3 _(LL) and RF4 _(LL) are established between terminalT1 and its peer terminals T2 and T3. As these logical links RF3 _(LL)and RF4 _(LL) are established, IP addresses of the network devicesconnected to the peer terminals T2 and T3 are added to terminal T1'srouter table 510 along with associated ports. In this manner, the routertable 510 is populated. The ports in the router table 510 of FIG. 5 showthree active communication links GIG0 _(PL), RF3 _(LL) and RF4 _(LL) atports GIG0, RF3 and RF4. The other thirty eight logical links are idleand will remain so until such time as logical links are desired withadditional terminals, at which time, time-slots will be assigned tothose logical links.

Time might be the first asset that becomes available. For example, timebecomes available when a time slot associated with a logical linkarrives. The remaining assets of the DNW interface (e.g., an ATU) arethen dynamically selected by an RF driver instance. After the assetshave been selected, the logical link driver instance generates gain andbeam steering commands, and outputs link layer frames to the selectedATU.

Consider the following additional examples. Packet B with destinationaddress IP_Add2 is received on the Gigabit Ethernet and routed to portRF3, which specifies an instance RF3 _(d) of the RF driver. Once assetsbecome available, the RF driver instance RF3 _(d) forwards packet B toterminal T2 in time slot 4 over logical link RF3 _(LL) using antennaterminal unit ATU5.

A packet G with destination address IP_Add3 is received by terminal T1over logical link RF3 _(LL) in time slot 7 using antenna terminal unitATU1. RF driver instance RF3 _(d) receives packet G and sends it to therouter module 520, where it is routed to driver instance RF4 _(d). Onceassets become available, driver instance RF4 _(d) forwards packet G intime slot 9 to terminal T3 using antenna terminal unit ATU1.

A packet R with destination address IP_Add1 is received over logicallink RF4 _(LL) in time slot 11 using antenna terminal unit ATU2. RFdriver instance RF4 _(d) receives packet G and sends it to the routermodule 520, where it is routed to driver instance GIG0 _(d). Driverinstance GIG0 forwards packet R to network device ND over a physicallink GIG0 _(PL).

Since the position of either or both terminals in a logical link mightchange (due, for instance, to being on mobile platforms), neitherterminal knows which assets to use at the time the packets are routed.The sending terminal only knows where the IP packets should gologically.

Consider the following example. Terminal T1 has established logicallinks with peer terminals T2 and T3. Initially, from the perspective ofterminal T1, the peer terminals T2 and T3 have a large angle separatingthem, so time-slot 4 is assigned to both logical links RF3 _(LL) and RF4_(LL). Communication from terminal T1 to peer terminal T2 is performedwith antenna unit ATU1, and communication to peer terminal T3 isperformed using antenna unit ATU4 because those antenna units have peerterminals T2 and T3 in their field of view. Now suppose terminals T2 andT3 suddenly move very close together, such that they are both in thefield of view of terminal T1. Only antenna unit ATU1 has both terminalsT2 and T3 in its field of view. Therefore, either terminal T2 orterminal T3 will get starved out for lack of assets. Consequently, oneterminal T2 or T3 will get some packets in slot4, and the other terminalwill get nothing. Packets that have been routed to the “starved”terminal won't get lost. They will stay “queued” by the RF driverinstance RF3 _(d) or RF4 _(d) until another time slot assigned to theassociated logical link arrives, and a “free” ATU can be found.

Although specific embodiments of the present invention have beendescribed and illustrated, the present invention is not limited to thespecific forms or arrangements of parts so described and illustrated.Instead, the present invention is construed according to the followingclaims.

1. An apparatus comprising: a table including Internet protocol (IP)addresses and corresponding ports, at least one of the ports specifyinga logical link; a router module for receiving IP packets and using thetable to associate the IP packets with the ports; and a driver fordetermining when assets for the logical link have become available, andthen forwarding associated IP packets to the available assets.
 2. Theapparatus of claim 1, wherein determining when the assets becomeavailable includes selecting the assets for the logical link.
 3. Theapparatus of claim 1, wherein the router module also populates the tablewith ports that are associated with logical links.
 4. The apparatus ofclaim 1, wherein the logical link varies at least one of temporally orspatially.
 5. The apparatus of claim 1, further comprising a routerinterface.
 6. The apparatus of claim 5, wherein assets of the routerinterface include a pool of antenna terminal units; and wherein thedriver selects among those antenna terminal units.
 7. A terminalcomprising: a router interface including a plurality of assets; a routermodule for receiving incoming Internet protocol (IP) packets and routingthe incoming IP packets to a port associated with a logical link; and adriver for the logical link, the driver determining when assets havebecome available so the IP packets can be sent to a network destinationvia the logical link, the driver forwarding the IP packets to theavailable assets.
 8. The terminal of claim 7, wherein algorithms andinterfaces for the assets are embedded in the driver.
 9. The terminal ofclaim 7, wherein the assets include a plurality of antenna terminalunits.
 10. The terminal of claim 9, wherein the assets further includetime.
 11. The terminal of claim 10, wherein the driver includesalgorithms and interfaces that operate in a time, space, frequency andmulti-antenna domain.
 12. The terminal of claim 10, wherein the driverincludes an OS interface, link management, slot management, and beamsteering controllers.
 13. The terminal of claim 7, wherein the routermodule uses a table to route the incoming IP packets, the tableincluding IP addresses and ports, the ports specifying at least onelogical link.
 14. The terminal of claim 7, wherein determining when theassets become available includes selecting the assets for the logicallink.
 15. The terminal of claim 7, wherein the router interface supportsa logical link that varies at least one of temporally or spatially. 16.A method of routing and forwarding an Internet protocol (IP) packet, themethod comprising: receiving the IP packet; routing the packet,including identifying the port to which the packet will be forwarded;refraining from forwarding the packet when assets for a logical linkidentified by the port are unavailable; and forwarding the IP packetwhen the assets for the logical link are available.
 17. The method ofclaim 16, further comprising determining when the assets have becomeavailable and includes selecting assets for the logical link.
 18. Themethod of claim 16, wherein routing the packet further comprisesaccessing a table, wherein the table is populated with ports that areassociated with a plurality of logical links.
 19. The method of claim16, wherein the logical link varies at least one of temporally orspatially.
 20. The method of claim 16, further comprising operating inat least one of a time, space, frequency, or multi-antenna domain.